#include "stdio.h"
void main()
{
    int p[2]={0x12345678,0x11223344}; //在反汇编代码中可以查找到p对应寄存器的地址
    asm //在c语言中插入汇编指令(要注意修改寄存器的地址)
    (
        //ebp-10是p0的地址
        "lea -0x10(%ebp),%eax\n\t" //将p0的地址赋值给eax
        "mov -0x10(%ebp),%ebx\n\t" //将p0地址的值赋值给ebx
        "mov $1,%ecx\n\t"  //ecx相当于P[i]的下标i
        //ebp-10 + ecx*4是p1的地址, int占4个字节
        "lea -0x10(%ebp,%ecx,4),%eax\n\t" //p1的地址
        "mov -0x10(%ebp,%ecx,4),%ebx\n\t" //p1地址上存储的数据
    );
    printf("understand mov and lea\n");
}

//gcc -no-pie -fno-pic -o movlea movlea.c
